package com.hgw.Demo02CommandPattern.ExamplesUndoOperation;

/**
 * Data time:2021/12/16 20:18
 * StudentID:2019112118
 * Author:hgw
 * Description: 具体命令类
 */
public class AddCommand extends AbstractCommand{
    private Adder adder = new Adder();
    private int value;

    // 实现抽象命令类中声明的 execute() 方法，调用加法类的加法操作
    @Override
    public int execute(int value) {
        this.value = value;
        return adder.add(value);
    }

    // 实现抽象命令类中声明的undo()方法，通过加一个相反数来实现加法的逆向操作
    @Override
    public int undo() {
        return adder.add(- value);
    }
}
